1. Field of the Invention
The present invention relates to a line printer. More particularly, the present invention relates to a line printer employing a line head based on a parallel input system, wherein density variation, which is known as common resistance unevenness, is effectively corrected.
2. Description of the Background Art
It is known that a line printer employing a line head involves density variation which is caused by a common resistance. The density variation will be explained below.
It is known that an equivalent circuit of a line head is such as that shown in FIG. 2A. In the figure, reference symbol R.sub.C denotes a common resistance, and R.sub.0, R.sub.1, . . . , R.sub.n denote the respective resistances of heating elements.
Assuming that the resistance of elements which are heating up (hereinafter referred to as "heating elements") is represented by the total resistance R.sub.H, the equivalent circuit is simplified as shown in FIG. 2B. In this case, although the common resistance R.sub.C itself does not change, the total resistance R.sub.H varies according to the number of heating elements. Consequently, since the common resistance R.sub.C and the total resistance R.sub.H are connected in series, the voltage with respect to the total resistance R.sub.H varies, causing variation of the current flowing through each heating element, which results in a density variation in the printed image.
The above is the density variation caused by the common resistance, which is also called "common resistance unevenness".
It should be noted that the term "printing" as used in this specification shall include not only printing of characters but also printing of images.
Various methods of correcting the density variation caused by the common resistance have heretofore been proposed. In recent years, however, the following technique has been adopted in many of conventional line printers. That is, a line printer is provided with a plurality of tables containing data concerning the pulse width of a strobe (hereinafter referred to as "STB") pulse that specifies a heating time of a thermal element for each particular gradation scale value. For each printing for each particular gradation scale value, a number of thermal elements to be heated is counted, and an optimal table (hereinafter referred to as "common table") is selected from among the plurality of tables on the basis of the counted number of thermal elements to be heated. Then, an STB pulse width corresponding to the relevant gradation scale value is read out from the common table, and an STB pulse having the read pulse width is applied to the thermal elements which are to be heated.
FIG. 3 schematically shows an example of the arrangement of a line printer adopting the above-described technique.
FIG. 3 shows an example of the arrangement of a line printer which employs a line head based on a serial input system. A line memory 1 has been stored with density values of pixels for one line read out from a frame memory (not shown). Let us assume that there are 256 gray scales from 0 to 255 in this example.
A data transfer control circuit 2 generates and outputs an ON/OFF signal for each pixel for each gradation scale of information to be printed on the basis of the density value of each of the pixels stored in the line memory 1. Further, the data transfer control circuit 2 outputs a print scale signal, which indicates a gradation scale for which the presently outputted ON/OFF signal is to be used, to a look-up table (hereinafter referred to as "LUT") 6. Since there are 256 gradation scales for density in this example, the print scale signal has a value in the range of from 00.sub.H to FF.sub.H (the subscript H indicates a hexadecimal number; the same shall apply hereinafter). In other words, the print scale signal in this example is an 8-bit signal.
The above-mentioned ON/OFF signal will be explained below. The ON/OFF signal specifies whether or not each thermal element (hereinafter referred to as simply "element") of a line head 4 should heat up during printing carried out for the relevant gradation scale. For example, in a case where the number of elements of the line head 4 is 4, and all the elements should heat up during printing for the scale 0, the data transfer control circuit 2 generates and outputs a pulse signal such as that shown in FIG. 4A.
In FIG. 4A: the first pulse specifies whether or not a first element 1 should heat up; the second pulse specifies whether or not a second element 2 should heat up; the third pulse specifies whether or not a third element 3 should heat up; and the fourth pulse specifies whether or not a fourth element 4 should heat up. When a pulse is at the ON level, the relevant element heats up; when the pulse is at the OFF level, the element does not heat up.
Thus, when the ON/OFF signal as shown in FIG. 4A is outputted, all the elements 1 to 4 heat up, and printing for the relevant gradation scale, that is, the scale 0 in this case, is carried out.
Upon completion of the printing for the scale 0, the data transfer control circuit 2 generates an ON/OFF signal for the scale 1 to carry out subsequent printing for the scale 1. Assuming, for example, that the density value for pixels corresponding to the elements 1 and 2 is not less than 1, and the density value for pixels corresponding to the elements 3 and 4 is 0, when printing for the scale 1 is to be carried out, the elements 1 and 2 need to heat up, but the elements 3 and 4 need not heat up. In this case, therefore, the data transfer control circuit 2 generates and outputs an ON/OFF signal such as that shown in FIG. 4B.
In this way, the data transfer control circuit 2 generates an ON/OFF signal every time printing for each particular gradation scale is to be carried out up to the scale 255. Accordingly, when the density value of a certain pixel is n (where 0.ltoreq.n.ltoreq.255), the level of the ON/OFF signal for an element corresponding to that pixel is set to the ON level during printing carried out for scales in the range of from 0 to n, while it is set to the OFF level during printing for scales in the range of from (n+1) to 255.
A head driving circuit 3 drives the line head 4. Since such a circuit is well known, description thereof is omitted.
The line head 4 comprises an array of a predetermined number of elements. The number of elements in this example is assumed to be 2,560.
A counter 5 detects a rise of the ON/OFF signal outputted from the data transfer control circuit 2 to count the number of pulses which are at the ON level in the ON/OFF signal. That is, the counter 5 counts the number of elements which are to be heated during printing for the relevant scale. The counter 5 outputs a count value; in this example, it is assumed that the counter 5 outputs only high-order 4 bits of the count value.
An LUT 6 has a plurality of tables containing data concerning the value of an STB pulse width corresponding to each of scales 0 to 255. The LUT 6 outputs STB pulse data to the head driving circuit 3, using the count value of the counter 5 and the value of the print scale signal as addresses. More specifically, on the basis of the count value of the counter 5, a table which corresponds to the relevant count value is selected from among the plurality of tables, and data concerning an STB pulse corresponding to the value of the print scale signal is read out from the selected table, as will be clear from a description made later.
In this example, it is assumed that 10 tables are prepared, and these tables are assigned page addresses 0 to 9, respectively. Further, it is assumed that: when the number of heating elements is in the range of from 0 to 255, the table with the page address 0 is used; when the number of heating elements is in the range of from 256 to 511, the table with the page address 1 is used; when the number of heating elements is in the range of from 512 to 767, the table with the page address 2 is used; when the number of heating elements is in the range of from 768 to 1,023, the table with the page address 3 is used; when the number of heating elements is in the range of from 1,024 to 1,279, the table with the page address 4 is used; when the number of heating elements is in the range of from 1,280 to 1,535, the table with the page address 5 is used; when the number of heating elements is in the range of from 1,536 to 1,791, the table with the page address 6 is used; when the number of heating elements is in the range of from 1,792 to 2,047, the table with the page address 7 is used; when the number of heating elements is in the range of from 2,048 to 2,303, the table with the page address 8 is used; and when the number of heating elements is in the range of from 2,304 to 2,560, the table with the page address 9 is used.
Accordingly, the LUT 6 may be arranged as shown in FIG. 5. In the figure, the table with the page address 0 is assigned to regions 0000.sub.H to 00FF.sub.H in the memory, and these regions are stored with data concerning STB pulse widths corresponding to printing operations for the scales 0 to 255. The same is the case with the other tables. It is apparent to those skilled in the art that the STB pulse width corresponding to each scale, which has been written in each table, can be determined by an appropriate calculation, experiment, etc.
The LUT 6 is supplied with the 4-bit signal from the counter 5 as the high-order 4 bits of an address in the LUT 6, and also supplied with the 8-bit print scale signal from the data transfer control circuit 2 as the low-order 8 bits of an address in the LUT 6.
Accordingly, if it is assumed that printing for the scale 0 is to be carried out, and the number of elements to be heated is 2,400, 00.sub.H is inputted to the LUT 6 from the data transfer control circuit 2, and 9.sub.H is inputted to the LUT 6 from the counter 5. Consequently, the table with the page address 9 is selected from the LUT 6 as a common table, and data concerning the STB pulse width for the scale 0 is read out from the selected table and then supplied to the head driving circuit 3. Thus, the elements which are to heat up during this printing process are heated only for a time which is specified by the pulse width data by the operation of the head driving circuit 3. In this way, printing for the scale 0 is carried out.
Upon completion of the printing for the scale 0, printing for the scale 1 is then carried out. Assuming that the number of elements to be heated during the printing process is 2,100, 01.sub.H is inputted to the LUT 6 from the data transfer control circuit 2, and 8.sub.H is inputted to the LUT 6 from the counter 5. Consequently, the table with the page address 8 is selected from the LUT 6 as a common table, and data concerning an STB pulse width for the scale 1 is read out from the selected table and then supplied to the head driving circuit 3. Thus, the elements which are to heat up during this printing process are heated only for a time which is specified by the pulse width data by the operation of the head driving circuit 3. In this way, printing for the scale 1 is carried out.
Thereafter, the above-described operation is repeated up to the scale 255, thereby completing printing for 1 line.
According to the above-described arrangement, a common table can be selected according to the number of elements to be heated. Therefore, the density variation caused by the common resistance can be effectively corrected. It should be noted that, although the foregoing description has been made with regard to a black-and-white printer, the same is the case with a color printer, as a matter of course.
However, a line printer that employs a line head based on the serial input system needs to generate and transfer an ON/OFF signal every time printing for each particular gradation scale is to be carried out, as has been described above, and it takes time to transfer the ON/OFF signal. Accordingly, the time required for printing is undesirably long, and thus the line printer employing a serial input type line head cannot comply with the demand for a reduction in the printing time, which has been particularly demanded in recent years. Particularly, there has been a tendency for the number of head elements to increase in recent years. Therefore, the time required to transfer the ON/OFF signal tends to increase, and the printing time tends to lengthen.
Meanwhile, line printers that employ a line head based on a parallel input system have recently been developed. According to the parallel input system, pixel density data for one line is transferred to the head part at one time to carry out printing, thereby enabling the printing time to be shortened to a considerable extent because it is not necessary to transfer an ON/OFF signal as in the case of the serial input system.
However, the line head based on the parallel input system also involves the problem of common resistance unevenness that occurs owing to the variation in the number of heating elements in the same way as in the case of the serial input system. Accordingly, the parallel input type line head also needs to correct density variation caused by the common resistance.
However, since no ON/OFF signal is transferred in the parallel input system, it is impossible to adopt the technique of counting the number of elements to be heated by using a counter as in the case of the serial input system.